package two.double_pointer;

/**
 * 双指针夹逼模板
 * 两数之和 II - 输入有序数组
 */
public class TwoSum2 {
    //时间复杂度：O(n)
    //思路：双指针扫描 有序数组
    //双指针夹逼模板
    public int[] twoSum(int[] numbers, int target) {
        int j = numbers.length - 1;
        for(int i = 0; i < numbers.length; i++){
            while(i < j && numbers[i] + numbers[j] > target) j--; // (  --->  <---  )
            if(i < j && numbers[i] + numbers[j] == target){
                return new int[] {i + 1, j + 1};
            }
        }
        return null;
    }
}
